package cn.stylefeng.guns.modular.business.pojo;

import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 封装类
 *
 * @author zhangyaowen
 * @date 2021/08/19 16:49
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class SubFileInfoRequest extends BaseRequest {

    /**
     * 主键id
     */
    @NotNull(message = "主键id不能为空", groups = {edit.class, delete.class})
   // @ChineseDescription("主键id")
    private Long id;

    /**
     * 文件存储位置（1:阿里云，2:腾讯云，3:minio，4:本地）
     */
    @NotNull(message = "文件存储位置（1:阿里云，2:腾讯云，3:minio，4:本地）不能为空", groups = {add.class, edit.class})
   // @ChineseDescription("文件存储位置（1:阿里云，2:腾讯云，3:minio，4:本地）")
    private Integer fileLocation;

    /**
     * 文件仓库
     */
    //@ChineseDescription("文件仓库")
    private String fileBucket;

    /**
     * 文件名称（上传时候的文件名）
     */
    @NotBlank(message = "文件名称（上传时候的文件名）不能为空", groups = {add.class, edit.class})
   // @ChineseDescription("文件名称（上传时候的文件名）")
    private String fileOriginName;

    /**
     * 文件后缀
     */
    //@ChineseDescription("文件后缀")
    private String fileSuffix;

    /**
     * 文件大小kb
     */
   // @ChineseDescription("文件大小kb")
    private Long fileSizeKb;

    /**
     * 文件大小信息，计算后的
     */
    //@ChineseDescription("文件大小信息，计算后的")
    private String fileSizeInfo;

    /**
     * 存储到bucket的名称（文件唯一标识id）
     */
    @NotBlank(message = "存储到bucket的名称（文件唯一标识id）不能为空", groups = {add.class, edit.class})
    //@ChineseDescription("存储到bucket的名称（文件唯一标识id）")
    private String fileObjectName;

    /**
     * 文件类型
     */
    //@ChineseDescription("文件类型")
    private Long fileType;

    /**
     * 存储路径
     */
   // @ChineseDescription("存储路径")
    private String filePath;

    /**
     * 分类归属
     */
    @TableField("file_first_belong")
    private String fileFirstBelong;

    /**
     * 具体归属
     */
    @TableField("file_second_belong")
    private String fileSecondBelong;

    /**
     * 文件的字节
     */
    private byte[] fileBytes;


}